CosyOS-II API 用户参考手册  1.0.3
宏定义
互斥信号量

仅适用于任务中对任务级公共资源的互斥访问。 更多...

互斥信号量 的协作图:

宏定义

#define uExternMut(mut)    sCSV_ExternMut(mut)
 声明互斥信号量 更多...
 
#define uCreateMut(mut)    sCSV_CreateMut(mut)
 创建互斥信号量 更多...
 
#define uTakeMut(mut, tc)   sUSV_TakeMut(mut, tc)
 获取互斥信号量 更多...
 
#define uBackMut(mut)    sUSV_BackMut(mut)
 归还互斥信号量 更多...
 

详细描述

仅适用于任务中对任务级公共资源的互斥访问。

任务必须先成功获取互斥量,而后才能访问资源,当资源访问结束时,需归还互斥量。

注解
有优先级继承机制,以抑制优先级反转的发生。
互斥信号量均支持递归,最大嵌套深度:255。
如果任务中调用了获取互斥量,应谨慎操作该任务,如操作不当可能会导致获取相同互斥量的其它任务死锁。

宏定义说明

#define uBackMut (   mut)    sUSV_BackMut(mut)

归还互斥信号量

参数
[in]mut互斥信号量名称
返回

在文件 ur_api.h852 行定义.

#define uCreateMut (   mut)    sCSV_CreateMut(mut)

创建互斥信号量

参数
[in]mut互斥信号量名称
返回
警告
创建互斥信号量时,系统将自动赋初值,用户不可赋初值。

在文件 ur_api.h832 行定义.

#define uExternMut (   mut)    sCSV_ExternMut(mut)

声明互斥信号量

参数
[in]mut互斥信号量名称
返回

在文件 ur_api.h824 行定义.

#define uTakeMut (   mut,
  tc 
)    sUSV_TakeMut(mut, tc)

获取互斥信号量

参数
[in]mut互斥信号量名称
[in]tc滴答周期(超时时间)
+0:立即返回
~0:无限等待
返回
结果(bool)
返回值
false失败
true成功
警告
不支持在临界区中,包括任务临界区、服务层临界区、全局临界区,或关闭总中断时调用。

在文件 ur_api.h845 行定义.